#!/usr/bin/python

# Convertisseur DIMACS-CNF
# (c) 2009 Radim BADSI <radim@badsi.info>

import sys, re

if len(sys.argv) != 2:
	print "Nombre d'arguments incorrect !"
	print "Utilisation : %s source.cnf" % sys.argv[0]
	exit(-1)

# Ouvrir les fichiers
inp_path = sys.argv[1]
inp = open(inp_path, "r")
out_path = inp_path[:-3] + "txt" # Changer l'extension en .txt
out = open(out_path, "w")

# Lire la premiere ligne du fichier
line = inp.readline()

while line != "":
	if line[0] != 'c':
		# La ligne analysee n'est pas un commentaire
		if line[0] == 'p':
			# La ligne analysee est l'en-tete du fichier
			nbClauses, nbVar = re.match("p cnf ([0-9]+) +([0-9]+)", line).groups()
			out.write(nbClauses + "\n" + nbVar + "\n")
		else:
			# Decouper la ligne
			variables = re.findall("-?[0-9]+", line)[:-1]
			
			# Rajouter + aux variables positives
			variables = map(lambda x: int(x)>=0 and "+"+x or x, variables)
			
			# Tout concatener et l'ecrire dans le fichier
			out.write(",".join(variables) + "\n")
	
	# Lire la ligne suivante
	line = inp.readline()

# Condition d'arret : line == "" (fin du fichier)

#Fermer les fichiers	
inp.close()
out.close()